/**
 * @file rgb4.c
 * @author your name (you@domain.com)
 * @brief 使用开源库libbmp 生成bmp 文件
 * @version 0.1
 * @date 2021-04-28
 * 
 * @copyright Copyright (c) 2021
 * 
 */
#include <stdio.h>
#include <stdint.h>
#include "libbmp.h"

uint32_t rainbowColors[] = {
    0XFF0000, // 红
    0XFFA500, // 橙
    0XFFFF00, // 黄
    0X00FF00, // 绿
    0X007FFF, // 青
    0X0000FF, // 蓝
    0X8B00FF  // 紫
};

int main(void)
{
    int width = 711, height = 711;
    bmp_img img;
    bmp_img_init_df(&img, width, height);

    int j = 1;
    for (int i = 0; i < width; i++)
    {
        uint32_t currentColor = rainbowColors[0];

        if (i < j * 100)
        {
            currentColor = rainbowColors[j - 1];
        }
        else
        {
            j++;
            //// 一旦进入else 则 currentColor 不会发生变化，需要取消这次循环对 i 的变化。
            i--;
            continue;
        }

        uint8_t R = (currentColor & 0xFF0000) >> 16;
        uint8_t G = (currentColor & 0x00FF00) >> 8;
        uint8_t B = (currentColor & 0x0000FF) >> 0;

        for (int j = 0; j < height; j++)
        {
            bmp_pixel_init(&img.img_pixels[i][j], R, G, B);
        }
        
    }

    bmp_img_write(&img, "rgbToBmpOpen.bmp");
    bmp_img_free(&img);

    return 0;
}

